/**
 * 
 */
package com.zr.service;

import java.sql.Date;
import java.util.List;

import javax.print.DocFlavor.READER;

import com.zr.dao.CourseDao;
import com.zr.dao.MarkDao;
import com.zr.model.Course;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**提供课程设置服务
 * @author JR
 *
 */
public class CourseService {
	MarkDao md=new MarkDao();
	CourseDao cd = new CourseDao();
	/** 
	 * 提供查询所有课程的服务
	 * @param start 初始的记录数
	 * @param rows 分页的记录数
	 * @return 返回easyui对应要求的json格式
	 */
	public JSONObject selectAllCourse(int start,int rows){
		JSONObject  job = new JSONObject();
		job.put("total", cd.selectAllCouCount());
		job.put("rows", cd.selectAllCourse(start, rows));
		
		return job;
		
	}
	
	/** 
	 *提供搜索课程的服务
	 * @param start
	 * @param rows
	 * @param value 
	 * @return
	 */
	public JSONObject selectCourse(String value){
		JSONObject  job = new JSONObject();
		job.put("total", cd.selectCouCount(value));
		job.put("rows", cd.selectCourse(value));
		
		return job;
		
	}
	
	
	/** 
	 * 提供增加课程的服务
	 * @param course
	 * @return
	 */
	public boolean addCourse(Course course){
		return cd.addCourse(course);
		
	}
	/** 
	 * 提供更改课程的服务
	 * @param course
	 * @return 
	 */
	public boolean updateCourse(Course course){
		return cd.updateCourse(course);
		
	}
	/** 
	 * 提供批量删除课程的方法
	 * @param cids 传入需要删除课程的ID
	 * @return 删除成功返回true 失败返回false
	 */
	public boolean delCourseById(String  cids[]){
		boolean flag = false;
		for (int i = 0; i < cids.length; i++) {
			flag = cd.delCourse(Integer.parseInt(cids[i]));
		}
		return flag;
		
	}
	/** 
	 * 提供设置选课时间的服务
	 * @param cbtime 传入开始选课的时间
	 * @param cetime 传入结束选课的时间
	 * @return 设置成功返回true
	 */
	public boolean setCourseSelectTime(String cbtime,String cetime){
		return cd.setCourseSelectTime(cbtime, cetime);
		
	}
	
	/** 
	 * 提供获取当时选课时间的服务
	 * @return
	 */
	public JSONObject getCourseSelectTime(){
		return cd.getCourseSelectTime();
		
	}
	/** 
	 * 提供设置录入成绩时间的服务
	 * @param cbtime 传入开始录入的时间
	 * @param cetime 传入结束录入的时间
	 * @return 设置成功返回true
	 */
	public boolean setAddMarkTime(String cbtime,String cetime){
		return cd.setAddMarkTime(cbtime, cetime);
		
	}
	/** 
	 * 提供获取当时录入成绩时间的服务
	 * @return
	 */
		public JSONObject getAddMarkTime(){
			return cd.getAddMarkTime();
			
		}
		
		/** 
		 * 提供比较当前时间是否在录入成绩设置时间范围内的服务
		 * @return
		 */
		public boolean compareAddMarkTime(){
			return cd.compareAddMarkTime();
			
		}
		/** 
		 * 提供比较当前时间是否在选课时间设置时间范围内的服务
		 * @return
		 */
		public boolean compareCourseSelectTime(){
			return cd.compareCourseSelectTime();
			
		}
		/**
		 * 提供获取当前老师下的课程的服务
		 * @param teacherId 传入老师的id
		 * @return 返回课程的集合
		 */
		public JSONArray getAllCourseByTid(int teacherId){
			return md.getAllCourseByTid(teacherId);
		}
		
}
